package FrontOffice;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;

import javax.swing.WindowConstants;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class Training extends javax.swing.JPanel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	{
		// Set Look & Feel
		try {
			javax.swing.UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	private JLabel Wort;
	private JTabbedPane jTabbedPane1;
	private JSeparator jSeparator2;
	private JLabel jMeldung;
	private JSeparator jSeparator1;
	private JButton next;
	private JLabel jFehler;
	private JLabel jLabel1;
	private JTextField Eingegebenes_Wort;

	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.getContentPane().add(new Training());
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}

	public Training() {
		super();
		initGUI();
	}

	private void initGUI() {
		try {
			this.setPreferredSize(new java.awt.Dimension(800, 600));
			this.setSize(800, 600);
			this.setLayout(null);
			{
				Eingegebenes_Wort = new JTextField();
				this.add(Eingegebenes_Wort);
				Eingegebenes_Wort.setBounds(306, 146, 166, 28);
			}
			{
				jLabel1 = new JLabel();
				this.add(jLabel1);
				jLabel1.setText("<html><center>Bitte geben Sie die<br> \u00DCbersetzung ein</center></html>");
				jLabel1.setBounds(57, 143, 203, 31);
				jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
				jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
			}
			{
				jFehler = new JLabel();
				this.add(jFehler);
				jFehler.setBounds(200, 390, 448, 35);

				jFehler.setText("Anzahl ist : - " + Statements.Anzahl_Vokabeln);
			}
			{
				next = new JButton();
				this.add(next);
				next.setText("<html><center>\u00DCberpr\u00FCfen</center></html>");
				next.setBounds(338, 260, 141, 64);
				next.setFont(new java.awt.Font("Lucida Grande", 1, 13));
				next.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent evt) {
						nextActionPerformed(evt);
					}
				});
			}
			{
				jSeparator1 = new JSeparator();
				this.add(jSeparator1);
				jSeparator1.setBounds(51, 338, 691, 12);
			}
			{
				jMeldung = new JLabel();
				this.add(jMeldung);
				jMeldung.setText("Der Trainer sagt:");
				jMeldung.setBounds(64, 356, 165, 22);
				jMeldung.setFont(new java.awt.Font("Lucida Grande", 1, 16));
			}
			{
				jSeparator2 = new JSeparator();
				this.add(jSeparator2);
				jSeparator2.setBounds(51, 446, 691, 12);
			}
			{
				jTabbedPane1 = new JTabbedPane();
				this.add(jTabbedPane1);
				jTabbedPane1.setBounds(290, 29, 415, 100);
				{
					Wort = new JLabel();
					jTabbedPane1.addTab("das gesuchte Wort", null, Wort, null);
					Wort.setBounds(332, 74, 242, 50);
					Wort.setFont(new java.awt.Font("Lucida Grande", 1, 18));
				}
			}
			zufallswort_auswahl();
			Eingegebenes_Wort.addKeyListener(new KeyListener() {
				
				@Override
				public void keyTyped(KeyEvent arg0) {
				}
				
				@Override
				public void keyReleased(KeyEvent arg0) {
					if(arg0.getKeyCode() == KeyEvent.VK_ENTER){
						nextActionPerformed(null);
					}
					
				}
				
				@Override
				public void keyPressed(KeyEvent arg0) {
				}
			});
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void zufallswort_auswahl() {
		if (Statements.Anzahl_Vokabeln != 0) {
			Statements.zufallswort(Wort);
		} else {
			Statements.Statistik_erstellen(Statements.gewaehlte_Anzahl,
					Statements.falsch_gewusst);
			// Start.getStart().getContentPane().removeAll();
			// FrontOffice.Statistik HM= new FrontOffice.Statistik();
			// Start.getStart().add(HM);
			// Start.getStart().validate();
			this.removeAll();
			add(new Statistik());
			this.repaint();
			Statements.reset();
		}
	}

	private void richtigkeit_ueberspruefen() {
		if (Statements.richtigkeit_pruefen(Wort.getText(),
				Eingegebenes_Wort.getText())) {
			jFehler.setText("Richtig!");
			Statements.Anzahl_Vokabeln--;
			Statements.richtig_gewusst++;
			Eingegebenes_Wort.setText("");
			zufallswort_auswahl();
		} else {
			jFehler.setText("Falsch! Versuch es nochmal - oder auch nicht!");
			Statements.Anzahl_Vokabeln--;
			Statements.falsch_gewusst++;
			Eingegebenes_Wort.setText("");
			zufallswort_auswahl();
		}

	}

	private void nextActionPerformed(ActionEvent evt) {
		richtigkeit_ueberspruefen();
	}
}
